package net.mfjassociates.finance.domain.mfjfin_newdb;

import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.jpa.identifier.RooIdentifier;

@Embeddable
@RooIdentifier(dbManaged = false)
public final class ProjectsPK {

	@Column(name = "ProjectID", nullable = false)
    private Integer projectId;

	@Column(name = "ProjectName", nullable = false, length = 50)
    private String projectName;

	@Column(name = "ProjectDescription", nullable = false)
    private String projectDescription;

	@Column(name = "ClientID", nullable = false)
    private Integer clientId;

	@Column(name = "PurchaseOrderNumber", nullable = false, length = 30)
    private String purchaseOrderNumber;

	@Column(name = "ProjectTotalBillingEstimate", nullable = false, precision = 19, scale = 4)
    private BigDecimal projectTotalBillingEstimate;

	@Column(name = "EmployeeID", nullable = false)
    private Integer employeeId;

	@Column(name = "ProjectBeginDate", nullable = false)
    @Temporal(TemporalType.DATE)
    @DateTimeFormat(style = "M-")
    private Date projectBeginDate;

	@Column(name = "ProjectEndDate", nullable = false)
    @Temporal(TemporalType.DATE)
    @DateTimeFormat(style = "M-")
    private Date projectEndDate;

	public ProjectsPK(Integer projectId, String projectName, String projectDescription, Integer clientId, String purchaseOrderNumber, BigDecimal projectTotalBillingEstimate, Integer employeeId, Date projectBeginDate, Date projectEndDate) {
        super();
        this.projectId = projectId;
        this.projectName = projectName;
        this.projectDescription = projectDescription;
        this.clientId = clientId;
        this.purchaseOrderNumber = purchaseOrderNumber;
        this.projectTotalBillingEstimate = projectTotalBillingEstimate;
        this.employeeId = employeeId;
        this.projectBeginDate = projectBeginDate;
        this.projectEndDate = projectEndDate;
    }

	private ProjectsPK() {
        super();
    }

	public Integer getProjectId() {
        return projectId;
    }

	public String getProjectName() {
        return projectName;
    }

	public String getProjectDescription() {
        return projectDescription;
    }

	public Integer getClientId() {
        return clientId;
    }

	public String getPurchaseOrderNumber() {
        return purchaseOrderNumber;
    }

	public BigDecimal getProjectTotalBillingEstimate() {
        return projectTotalBillingEstimate;
    }

	public Integer getEmployeeId() {
        return employeeId;
    }

	public Date getProjectBeginDate() {
        return projectBeginDate;
    }

	public Date getProjectEndDate() {
        return projectEndDate;
    }
}
